package com.springcloud.zuul.common.constant;

import java.util.Objects;

/**
 * 常量
 */
public class Constant {

    /**
     * 是否admin权限即权限管理平台权限   1.是   0否
     */
    public static final int SUPER_AUTHORITY = 1;
    /**
     * 是否admin权限即权限管理平台权限   1.是   0否
     */
    public static final int NOT_SUPER_AUTHORITY = 0;

    /**
     * 用户类型 0.公司用户 1.个人用户
     */
    public static final int USER_TYPE = 0;

    /**
     * 是否特殊登陆账号    0.否   1.是
     */
    public static final int NON_SPECIAL = 1;

    /**
     * 是否公司角色     0否   1是
     */
    public static final int WHETHER_DEPT = 0;

    /**
     * 默认顶级菜单
     */
    public static final String DEFAULT_PARENTID = "0";

    /**
     * 完整随机字符串
     */
    public static final String RANDOM_NUMBER = "_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";

    /**
     * 大写字母随机字符串
     */
    public static final String UPPERCASE_LETTER = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";

    /**
     * 大写字母数字随机字符串
     */
    public static final String UPPERCASE_LETTER_NUMBER = "ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";

    /**
     * 小写字母随机字符串
     */
    public static final String LOWER_CASE_LETTERS = "abcdefghijklmnopqrstuvwxyz";

    /**
     * 数字随机字符串
     */
    public static final String RANDOM_NUM = "1234567890";

    /**
     * 手机用户
     */
    public static final String MOBILE_PHONE_USERS = "手机用户";

    /**
     * 当前页码
     */
    public static final String PAGE = "page";
    /**
     * 每页显示记录数
     */
    public static final String LIMIT = "limit";
    /**
     * 排序字段
     */
    public static final String ORDER_FIELD = "sidx";
    /**
     * 排序方式
     */
    public static final String ORDER = "order";
    /**
     * 升序
     */
    public static final String ASC = "asc";

    /**
     * 菜单类型
     *
     * @author chenshun
     * @email sunlightcs@gmail.com
     * @date 2016年11月15日 下午1:24:29
     */
    public enum MenuType {
        /**
         * 目录
         */
        CATALOG(0),
        /**
         * 菜单权限
         */
        MENU(1),
        /**
         * 按钮权限
         */
        BUTTON(2),
        /**
         * 效验权限
         */
        EFFECT(3),
        /**
         * 文档权限
         */
        DOCUMENTATION(4);

        private int value;

        MenuType(int value) {
            this.value = value;
        }

        public int getValue() {
            return value;
        }
    }

    /**
     * 定时任务状态
     *
     * @author chenshun
     * @email sunlightcs@gmail.com
     * @date 2016年12月3日 上午12:07:22
     */
    public enum ScheduleStatus {
        /**
         * 正常
         */
        NORMAL(0),
        /**
         * 暂停
         */
        PAUSE(1);

        private int value;

        ScheduleStatus(int value) {
            this.value = value;
        }

        public int getValue() {
            return value;
        }
    }

    /**
     * 云服务商
     */
    public enum CloudService {
        /**
         * 七牛云
         */
        QINIU(1),
        /**
         * 阿里云
         */
        ALIYUN(2),
        /**
         * 腾讯云
         */
        QCLOUD(3);

        private int value;

        CloudService(int value) {
            this.value = value;
        }

        public int getValue() {
            return value;
        }
    }

    public enum HeadType {
        SYS(1),
        WX(2),
        Ignore(3);

        private int code;

        HeadType(int code) {
            this.code = code;
        }

        public boolean checkCode(Integer code) {
            return Objects.equals(code, Integer.valueOf(this.code));
        }

        public int getCode() {
            return code;
        }
    }

    public static final String HEAD_USER_ID = "Head-User-Id";
    public static final String HEAD_TYPE = "Head-Type";

}
